<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilasu: ECIES Common APIs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilasu
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__xasu__ecies__common__apis.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ECIES Common APIs</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga91448b30f049e4d7596cff8103bb6d60"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xasu__ecies__common__apis.html#ga91448b30f049e4d7596cff8103bb6d60">XAsu_ValidateEciesParameters</a> (const <a class="el" href="struct_x_asu___ecies_params.html">XAsu_EciesParams</a> *EciesParams)</td></tr>
<tr class="memdesc:ga91448b30f049e4d7596cff8103bb6d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function validates the input parameters for ECIES.  <a href="#ga91448b30f049e4d7596cff8103bb6d60">More...</a><br/></td></tr>
<tr class="separator:ga91448b30f049e4d7596cff8103bb6d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabea090d5e90377bd531c47b85e8854bc"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xasu__ecies__common__apis.html#gabea090d5e90377bd531c47b85e8854bc">XAsu_EccValidateCurveInfo</a> (u32 CurveType, u32 CurveLen)</td></tr>
<tr class="memdesc:gabea090d5e90377bd531c47b85e8854bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function validates the given ECC curve type and curve length.  <a href="#gabea090d5e90377bd531c47b85e8854bc">More...</a><br/></td></tr>
<tr class="separator:gabea090d5e90377bd531c47b85e8854bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gabea090d5e90377bd531c47b85e8854bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XAsu_EccValidateCurveInfo </td>
          <td>(</td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>CurveType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>CurveLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function validates the given ECC curve type and curve length. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CurveType</td><td>Curve type provided. </td></tr>
    <tr><td class="paramname">CurveLen</td><td>Curve length provided.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS, if curve type is valid.</li>
<li>XST_FAILURE, if curve length is invalid. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__xasu__common__defs.html#ga1c82f52a87a08576a6bde00ee9affc44">XASU_ECC_BRAINPOOL_P256</a>, <a class="el" href="group__xasu__common__defs.html#gac03e0be6a7084a1bd1cba733058768f0">XASU_ECC_BRAINPOOL_P320</a>, <a class="el" href="group__xasu__common__defs.html#gae0315d337fe37995bcf91bf563360b61">XASU_ECC_BRAINPOOL_P384</a>, <a class="el" href="group__xasu__common__defs.html#ga572ce71914996f8df084f6f0804e82ef">XASU_ECC_BRAINPOOL_P512</a>, <a class="el" href="group__xasu__common__defs.html#ga754d019499ce9c9e2714a9ef84ab84d1">XASU_ECC_NIST_P192</a>, <a class="el" href="group__xasu__common__defs.html#ga1d16dca0caf0a762ede1a0e8672010a2">XASU_ECC_NIST_P224</a>, <a class="el" href="group__xasu__common__defs.html#gae0d5b0eb8d6006304f667517a55da079">XASU_ECC_NIST_P256</a>, <a class="el" href="group__xasu__common__defs.html#ga88f95ad530f35943b833d493264927f0">XASU_ECC_NIST_P384</a>, <a class="el" href="group__xasu__common__defs.html#ga73d575865c062728ed5a08b966bf8334">XASU_ECC_NIST_P521</a>, <a class="el" href="group__xasu__common__defs.html#ga4ca4ff401958e6c9a6e564723d9fbb03">XASU_ECC_P192_SIZE_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#ga1b18def4389216e8fdb76369d54e6c6b">XASU_ECC_P224_SIZE_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#ga1e9ddb860264bc4409c45425b26aa308">XASU_ECC_P256_SIZE_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#gadf310145b5898e6e4b9a5dc577595c9e">XASU_ECC_P320_SIZE_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#gacb0fc8776af056fa5bb78074de4d3aa2">XASU_ECC_P384_SIZE_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#gaf9248f6b5bde3dcc1ce5dc08a8462c89">XASU_ECC_P512_SIZE_IN_BYTES</a>, and <a class="el" href="group__xasu__common__defs.html#ga9f2fe105b261a073aaefc5c5105c68a5">XASU_ECC_P521_SIZE_IN_BYTES</a>.</p>

<p>Referenced by <a class="el" href="group__xasu__ecc__client__apis.html#ga48e7b1ccb5585cef9da33497b4ddecd4">XAsu_EccGenPubKey()</a>, <a class="el" href="group__xasu__ecc__client__apis.html#ga479b14161470bf8787e6f265bb4d23d8">XAsu_EcdhGenSharedSecret()</a>, <a class="el" href="group__xasu__ecies__client__apis.html#ga689f879d22a42d9da5fe3148cd307883">XAsu_EciesDecrypt()</a>, and <a class="el" href="group__xasu__ecies__common__apis.html#ga91448b30f049e4d7596cff8103bb6d60">XAsu_ValidateEciesParameters()</a>.</p>

</div>
</div>
<a class="anchor" id="ga91448b30f049e4d7596cff8103bb6d60"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XAsu_ValidateEciesParameters </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_x_asu___ecies_params.html">XAsu_EciesParams</a> *&#160;</td>
          <td class="paramname"><em>EciesParams</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function validates the input parameters for ECIES. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">EciesParams</td><td>Pointer to <a class="el" href="struct_x_asu___ecies_params.html" title="This structure contains ECIES params info. ">XAsu_EciesParams</a> structure that holds the input parameters for ECIES.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS, if ECIES input parameters validation is successful.</li>
<li>XST_FAILURE, if ECIES input parameters validation fails. </li>
</ul>
</dd></dl>
<p>Validate SHA Type and SHA Mode.</p>
<p>Validate AES key size.</p>
<p>Validate IV and MAC length paramters.</p>
<p>Validate context and data lengths.</p>
<p>Validate ECC curve type.</p>
<p>Validate that the addresses of all input and output buffers are non-zero. </p>

<p>References <a class="el" href="struct_x_asu___ecies_params.html#a5537a865706283c027ee9e95ba39bb5d">XAsu_EciesParams::AesKeySize</a>, <a class="el" href="struct_x_asu___ecies_params.html#a4d0d8cb38d8498d24bc76851076e9710">XAsu_EciesParams::ContextAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#a30ccc1b46bce15797bf5cbdccd4acfc4">XAsu_EciesParams::ContextLen</a>, <a class="el" href="struct_x_asu___ecies_params.html#a10c2ea889b613ea55ca3c415e4c621e6">XAsu_EciesParams::DataLength</a>, <a class="el" href="struct_x_asu___ecies_params.html#a0bd65aa5b7faf176c9e52e3e2347cc98">XAsu_EciesParams::EccCurveType</a>, <a class="el" href="struct_x_asu___ecies_params.html#a0de4e32a344bfe210b9a8e60c387e152">XAsu_EciesParams::EccKeyLength</a>, <a class="el" href="struct_x_asu___ecies_params.html#a2bfd1ff2f154a70612c91d482c5ceea6">XAsu_EciesParams::InDataAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#abd49b0a55a8d01a3f7c58b1ae01de258">XAsu_EciesParams::IvAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#a5d1fd299bcddc8bc104d0049fcef8a4d">XAsu_EciesParams::IvLength</a>, <a class="el" href="struct_x_asu___ecies_params.html#a66353da061945a39bccef5de85f92ff1">XAsu_EciesParams::MacAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#a5e4045d64d4cddc996491a4355a39a8e">XAsu_EciesParams::MacLength</a>, <a class="el" href="struct_x_asu___ecies_params.html#aba4409421f368710659a861058b385df">XAsu_EciesParams::OutDataAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#a71659976f54404c81a55e6b586d96b8d">XAsu_EciesParams::RxKeyAddr</a>, <a class="el" href="struct_x_asu___ecies_params.html#a7a3828422b375b9cb454b46ea9bf2404">XAsu_EciesParams::ShaMode</a>, <a class="el" href="struct_x_asu___ecies_params.html#ad61d0a4035cef34a092e8b8ee2413d1d">XAsu_EciesParams::ShaType</a>, <a class="el" href="struct_x_asu___ecies_params.html#a4907eea1457b2fc81b608306e89f59df">XAsu_EciesParams::TxKeyAddr</a>, <a class="el" href="group__xasu__common__defs.html#ga2ee13c774f1393949629518f645785b8">XASU_AES_IV_SIZE_96BIT_IN_BYTES</a>, <a class="el" href="group__xasu__common__defs.html#ga7d2c1e79c450b652a8a299a7de7543f1">XASU_AES_KEY_SIZE_128_BITS</a>, <a class="el" href="group__xasu__common__defs.html#ga565a9f9f9f947674eb43a1ce60e638d6">XASU_AES_KEY_SIZE_256_BITS</a>, <a class="el" href="group__xasu__common__defs.html#ga2b23227296edca13de1f3732e04cca19">XASU_AES_MAX_TAG_LENGTH_IN_BYTES</a>, <a class="el" href="group__xasu__ecies__common__apis.html#gabea090d5e90377bd531c47b85e8854bc">XAsu_EccValidateCurveInfo()</a>, <a class="el" href="group__xasu__common__defs.html#ga1414c259c8c5950d2fb0ee88dfce70c3">XASU_KDF_MAX_CONTEXT_LEN</a>, <a class="el" href="group__xasu__common__defs.html#gaa7423cf1e6eb12f6d307fcdfadde635e">XASU_SHA2_TYPE</a>, <a class="el" href="group__xasu__common__defs.html#ga7af115dffedb0e4d090e6fa4561a0693">XASU_SHA3_TYPE</a>, <a class="el" href="group__xasu__common__defs.html#ga2ff7f0c006a8fd37526d549b4b02b511">XASU_SHA_MODE_SHA256</a>, <a class="el" href="group__xasu__common__defs.html#ga8abe96be07950583b1b86b109031db97">XASU_SHA_MODE_SHA384</a>, <a class="el" href="group__xasu__common__defs.html#gaf72009eaaf78e4306eba5db7264a6560">XASU_SHA_MODE_SHA512</a>, and <a class="el" href="group__xasu__common__defs.html#gaacee72cf9c2d25a922f117c6da956f25">XASU_SHA_MODE_SHAKE256</a>.</p>

<p>Referenced by <a class="el" href="group__xasu__ecies__client__apis.html#ga689f879d22a42d9da5fe3148cd307883">XAsu_EciesDecrypt()</a>, and <a class="el" href="group__xasu__ecies__client__apis.html#gafa9ae6edbd3dba6873779ab7bdc055b4">XAsu_EciesEncrypt()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
